# 以下代码为提示框架
# 请在...处使用一行或多行代码替换
#
# 注意：提示框架代码可以任意修改，以完成程序功能为准
'''
问题2 (10分) :在PY301-2. py文件中修改代码，读入CSV文件中数据，获得用户输入。用户键盘输入- -组范围是1-12的
整数作为序号，序号间采用空格分隔，以回车结束。屏幕输出这些序号对应的星座的名称、字符编码以及出生日期范
围，每个星座的信息一行。本次屏幕显示完成后，重新回到输入序号的状态。
参考输入和输出示例格式如下:
请输入星座序号(例如,5): 5 10
双子座(9802)的生日是5月21日至6月21日之间
天蝎座(9807)的生日是10月24日至11月22日之间
请输入星座序号(例如, 5):
'''

# 打开文件
fp = open('PY301-SunSign.csv')
# 用来保存相应的信息
ls = []
for line in fp:
    ls.append(line.split(','))
'''
# 经过for循环分割之后的结果
[['序号', '星座', '开始月日', '结束月日', 'Unicode\n'], 
 ['1', '水瓶座', '120', '218', '9810\n'], 
 ['2', '双鱼座', '219', '320', '9811\n'],
 ......
 ['12', '魔蝎座', '1222', '119', '9809\n']]
'''
print(ls)
userInput = input('请输入星座序号(例如,5):').split(' ')
print(userInput)
'''
# 输入 5 10 之后 userInput中的内容
['5', '10']
'''
# 循环用户的输入
for i in userInput:
    # 在 ls 中查找结果
    for tmp in ls:
        # 判断是否找到相应的星座
        if i == tmp[0]:
            constellation = tmp[1]  # 星座
            # 去除换行符
            id = tmp[-1].strip('\n')  # Unicode编码
            # 观察文件中的开始日月 和 结束日月  可以得出 月份*100+日期 为最后的结果  因此我们拆分结果
            beginMonth = int(int(tmp[2]) / 100)  # 开始的月份
            beginDate = int(int(tmp[2]) % 100)  # 开始的日期
            endMonth = int(int(tmp[3]) / 100)  # 结束的月份
            endDate = int(int(tmp[3]) % 100)  # 结束的日期
            print("{}({})的生日是{}月{}日至{}月{}日之间".format(constellation, id, beginMonth,beginDate,endMonth,endDate))
